import { defineStore } from 'pinia'
import Room2V2 from '@/models2v2/room2v2'
import {reactive} from 'vue'
// 全局房间对象（不放入可持久化 state，避免序列化问题）
export const room2v2 = reactive(new Room2V2())

export const useRoomStore = defineStore('room', {
  state: () => ({
    room_id: '',
    stantard: [1, 2, 3, 4], // 位置映射数组
    mypos: 0, // 我的位置
    characArray: [[],[],[],[]], // 角色数组
  }),
  actions: {
    setRoomId(roomId) {
      this.room_id = String(roomId || '')
    },
    // 访问全局 room2v2 的便捷方法
    getRoom2V2() {
      return room2v2
    },
    //设置位置映射
    setStantard(value) {
      this.stantard = Array.isArray(value) ? [...value] : [1, 2, 3, 4]
    },
    //设置我的位置
    setMyPos(value) {
      this.mypos = Number(value) || 0
    },
    //设置角色数组
    setCharacArray(value) {
      this.characArray = Array.isArray(value) ? [...value] : []
    },
    //重置所有信息
    reset() {
      this.room_id = ''
      this.stantard = [1, 2, 3, 4]
      this.mypos = 0
      this.characArray = []
    }
  }
})
